yelbatinfandomcom-20200214-history
The Boolean Dilemma
In the Land of Boole is the city of Constance, in which reside two kinds of people, Truthtellers and Liars. Truthtellers constantly tell the truth. Liars constantly tell lies. Elsewhere in Boole is its only other city, Variance. The citizens of Variance are all of just one type, but they alternate between telling lies and telling the truth. If a citizen of Variance has just told a lie, then his very next statement will be truthful. And if he has just told the truth, his very next statement will be a lie. And there is one other peculiarity. A Boolean who is telling the truth may well say truthfully, "I don't know"; but a Boolean who is lying will never say that. If a lying Boolean knows the answer to a question, he will always give a different false answer, and he will never lie by saying, "I don't know." The First Problem = Given the above facts, is there a single yes-or-no question you can ask a Boolean, the answer to which will tell you whether he is from Constance or from Variance? |-| The Skeptic's Advice = It's impossible! There are only two kinds of questions in this world, ones for which you already know the correct answer, and ones for which you don't already know the correct answer. Asking a question of the second type won't tell you anything about the person who answers it. Asking a question of the first type will tell you if the person if lying or telling the truth, but it won't tell you if he always lies or always tells the truth, so you still won't know what city he's from. To know that, you must ask two questions of the first type, not just one. |-| Counterargument = The Skeptic has mistaken the problem. We don't need to know if the Boolean is telling the truth, only which city he hails from. So a question of the second type may suffice, if the answer says something about the Boolean's "constancy." |-| The Solution = "The last time you made a statement, were you telling the truth?" A Boolean from Constance will always answer this question, "Yes," regardless of whether he is lying or telling the truth. A Boolean from Variance will always answer, "No." The Variance Boolean might be lying, because his previous statement was truthful, or he might be telling the truth because his previous statement was a lie, but in either case his answer would be the same. The Second Problem = Given the same facts, is there a single yes-or-no question you can ask a Boolean, the answer to which will tell you not only whether he is from Constance or from Variance, but also, if he is from Constance, whether he is a Truthteller of a Liar? |-| The Skeptic's Advice = This time it's really impossible! There are only two possible answers to any such question, yes or no. But here you must decide among three possibilities, Truthteller, Liar, or Variant. So no single question will suffice. |-| Counterargument = Actually, there are three possible answers to any yes-no question: yes, no, or I don't know. If the question is properly phrased, the Truthteller may have to answer "I don't know," while the Liar and the Variant will each give a different one of the other two possible answers. |-| The Solution = "Given that a person, let's call him John, wants to know if you are from Constance or from Variance, and, if from Constance, whether you are a Truthteller or a Liar, and assuming John was told whether your previous statement was the truth or a lie, and that John was told this by a Boolean who is not a Truthteller and who is from a city not your own, and that John believed what he was told, would John be correct in the conclusion he would draw about you if, upon seeing but not hearing you answer this question, John believes that you are telling the truth?" A Truthteller will answer, "I don't know." The Truthteller knows that the "someone" was from Variance ("from a city not your own"), and so he does not know if that someone was telling the truth, in which case John's conclusion would be correct, or was telling a lie, in which case John's conclusion would be incorrect. A Liar will answer "Yes" because it doesn't matter what the hypothetical someone said. Since John believes the Liar is now telling the truth, John will have to draw an incorrect conclusion, either that the Liar is a Truthteller or that the Liar is from Variance. Since the Liar thus knows the conclusion would be incorrect, he will lie and say, "Yes, John's conclusion would be correct." The Variant, on the other hand, knows that the hypothetical someone was a Liar ("not a Truthteller and from a city not your own"). If the Variant is about to answer truthfully, he knows his previous statement was a lie. The someone liar would have said it was the truth, and been believed by John. So John, believing the Variant is now telling a second truth in a row, would draw an incorrect conclusion, so the truth-telling Variant answers, "No, John's conclusion would be incorrect." But now consider a Variant who is a about to answer falsely. In this case, the someone Liar would have said his previous truthful statement was a lie, and been believed. Now the conclusion would be correct: a lie followed by what John's believes to be a truth means a citizen of Variance. But remember, this Variant is about to lie, so again he answers, "No!" The question works. Variants always answer, "No"; Liars answer "Yes"; and Truthtellers answer, "I don't know."